program trujkont;
uses crt;

const vx=20; vy=1;

var xa,ya,xb,yb,xc,yc,a,b,c:real;
output:array[0..5] of record nazwa:string[10]; wartosc:real; end;
it,x:integer;
znak:char;

function dlugosc (x1,y1,x2,y2:real):real;
begin dlugosc:=sqrt(sqr(x2-x1)+sqr(y2-y1)); end;

function sprawdz(a,b,c:real):boolean;
begin
 if (a+b>c) and (b+c>a) and (a+c>b) then
 sprawdz:=true
 else
 sprawdz:=false;
end;

function pole(a,b,c:real):real;
var p:real;
begin
p:=(a+b+c)/2;
pole:=sqrt(p*(p-a)*(p-b)*(p-c));
end;

function promien_o(a,b,c:real):real;
begin
promien_o:=a*b*c/(4*pole(a,b,c));
end;

function promien_w(a,b,c:real):real;
begin
promien_w:=2*pole(a,b,c)/(a+b+c);
end;

function srednia(x1,y1:real):real;
begin
srednia:=(x1+y1)/2;
end;

function wys_x(x,b,c:real):real;
begin
wys_x:=2*pole(x,b,c)/x;
end;

function i:integer;
begin
i:=it;
inc(it);
end;

BEGIN
clrscr;
write('podaj xA=');readln(xa);
write('podaj yA=');readln(ya);
write('podaj xB=');readln(xb);
write('podaj yB=');readln(yb);
write('podaj xC=');readln(xc);
write('podaj yC=');readln(yc);
a:=dlugosc(xb,yb,xc,yc);
b:=dlugosc(xa,ya,xc,yc);
c:=dlugosc(xa,ya,xb,yb);
if (sprawdz(a,b,c)) then
 begin
 writeln;
  it:=0;
  output[it].nazwa:='P'; output[i].wartosc:=pole(a,b,c);
  output[it].nazwa:='R'; output[i].wartosc:=promien_o(a,b,c);
  output[it].nazwa:='r'; output[i].wartosc:=promien_w(a,b,c);
  output[it].nazwa:='hA'; output[i].wartosc:=dlugosc(srednia(xc,xb),srednia(yc,yb),xa,ya);
  output[it].nazwa:='hB'; output[i].wartosc:=dlugosc(srednia(xa,xc),srednia(ya,yc),xb,yb);
  output[it].nazwa:='hC'; output[i].wartosc:=dlugosc(srednia(xa,xb),srednia(ya,yb),xc,yc);
  clrscr;

  for x:=0 to 20 do
   begin
    gotoxy(vx+x,vy);
    if (x=0) or (x=20) then write('+') else write('-');
   end;
   for x:=Low(output) to High(output) do
   begin
    gotoxy(vx,x+vy+1);
    if x mod 2=0 then znak:='|' else znak:='|';
    writeln(znak,' ',output[x].nazwa:5,':':3,'':2,output[x].wartosc:5:2);
   end;
  for x:=0 to High(output) do
   begin
    gotoxy(vx+20,vy+x+1);
    if x mod 2=0 then znak:='/' else znak:='\';
    write(znak);
   end;
  for x:=0 to 20 do
   begin
    gotoxy(vx+x,High(output)+vy+2);
    if (x=0) or (x=20) then znak:='+' else if x mod 2=0 then znak:='/' else znak:='\';
    write(znak);
   end
 end;
 readkey;
END.